	{"nothing",AGROUP_ONLYALL,0,"This action does nothing."},
	{"close",AGROUP_SYSTEM,0,"Close "VirtualDJ" and return to the operating system.\n\nIf a song is playing and the security setting is set to \"ask\", it will prompt you before closing."},
	{"minimize",AGROUP_SYSTEM,0,"Minimize "VirtualDJ" in the taskbar."},
	{"maximize",AGROUP_SYSTEM,0,"Switch the screen to the resolution of this skin, in order to fullfil the whole screen."},

	{"play",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_TEMPO|AEF_CHAN,"Play the song\n\nIf used with \"AUTO\", it will play the song synced on the actual music."},
	{"play_n_loop",AGROUP_DECKCONTROLS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Introduce the song with a loop.\n\nThe song will be played from the first beat or from the last set loop point, and in a loop of 4 beat by default (can be changed with \"VALUE\")."},
	{"pause",AGROUP_DECKCONTROLS,AEF_CHAN,"Pause the song."},
	{"stop",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_CHAN,"Stop the song, and goes back to the last cue point.\nThen cycle through the other cue points and the start of the song as the action is repeated."},
	{"sync",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_CHAN,"Synchronize the pitch, and beatmatch the rhythm if the song is playing\n(used with \"AUTO\" sync on actual beats instead of CBG)."},
	{"sync_nocbg",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_CHAN,"Synchronize on the real beats, without using the CBG (\"AUTO\" sync on CBG)."},
	{"play_pause",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_TEMPO|AEF_CHAN,"Play the song if it's stopped, or pause it if it's playing."},
	{"cue_stop",AGROUP_DECKCONTROLS,AEF_CHAN|AEF_VALUE,"If the song is playing, go to the cue.\nIf the song is paused, set a cue.\nIf the song is at the cue point, play a small part of the song."},
	{"play_stutter",AGROUP_DECKCONTROLS,AEF_CHAN|AEF_AUTO,"Play the song if it's stopped, or stutter it if it's playing.\n\nIf used with \"AUTO\", it will play the song synced on the actual music."},
	{"pause_stop",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_CHAN,"Pause the song if playing, or cycle through the begining and the cues if paused."},
	{"beatlock",AGROUP_DECKCONTROLS,AEF_AUTO|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Engage or disengage the beatlock on this deck.\n\nA beatlocked deck will synchronise itself on the other deck playing (or sample or network or multiinstance deck if any), and keep synced whatever you do (scratch, move, etc...)."},
	{"select",AGROUP_DECKCONTROLS,AEF_TEMPO|AEF_CHAN,"Select which deck is the \"default deck\".\n\nThe default deck get the focus for the default keyboard shortcuts, and is displayed in green on the rhythm display.\n\nNormally, the default deck is the one you're working on, while the active deck (in red) is the one the audience is listening to."},
	{"reverse",AGROUP_DECKCONTROLS,AEF_CHAN|AEF_DEFAULT|AEF_TEMPO,"Play the song backward."},
	{"smart_play",AGROUP_DECKCONTROLS,AEF_CHAN|AEF_VALUE,"Enable/disable smart play (play snaps the song in sync)"},

	{"master_volume",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the general volume.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 2048 ( Set the volume to the middle )\n\nor specify the step to increment or to decrement the volume value :\n\n  ex : +128 ( increment of 128 )\n       -512 ( decrement of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change volume only when you push the key.\n\nFor this action, Reset value correspond to the value 4096 (Max value)."},
	{"headphone_volume",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the headphones.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 2048 ( Set the volume to the middle )\n\nor specify the step to increment or to decrement the volume value :\n\n  ex : +128 ( increment of 128 )\n       -512 ( decrement of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change volume only when you push the key.\n\nFor this action, Reset value correspond to the value 4096 (Max value)."},
	{"headphone_mix",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the blend in the headphones between the cue output and the mix output.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( You hear only the default deck )\n       4096 ( Your hear only the mix output )\n       2048 ( You hear both the cue and mix outputs )"},
	{"mic_volume",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the microphone if it's enabled on your soundcard.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 2048 ( Set the volume to the middle )\n\nor specify the step to increment or to decrement the microphone volume value :\n\n  ex : +128 ( increment of 128 )\n       -512 ( decrement of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change microphone volume only when you push the key.\n\nFor this action, Reset value correspond to the value 0 (Min value)."},
	{"headphone_crossfader",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the headphone crossfader value.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( You hear only the left deck )\n       2048 ( You hear both decks )\n       4096 ( You hear only the right deck )\n\nor specify the step and the direction of the fader :\n\n  ex : +128 ( 128 on the right )\n       -512 ( 512 on the left )\n       ...\n\nCheck 'temporary' checkbox if you want to change crossfader volume only when you push the key.\n\nFor this action, Reset value correspond to the value 2048."},
	{"master_balance",AGROUP_SYSVOLUMES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the balance left/right."},

	{"pitch",AGROUP_PITCH,AEF_AUTO|AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the pitch of the deck.\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum pitch -8%, -12%, -33% according to the PITCH settings)\n       2048 ( Default pitch 0% )\n       4096 ( Maximum pitch +8%, +12%, +33% according to the PITCH settings)\n\nor specify the step to increment or to decrement the pitch :\n\n  ex : +128 ( increment pitch of 128 )\n       -512 ( decrement pitch of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change pitch only when you push the key.\n\nAUTO synchonize the BPM with the BPM of the other deck.\nRESET value correspond to the value 0 (Min value)."},
	{"pitch_reset",AGROUP_PITCH,AEF_DEFAULT|AEF_CHAN,"Smoothly reset the pitch (speed) to 0%."},
	{"pitch_bend",AGROUP_PITCH,AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Add a value to the pitch without changing the display and the pitch slider.\n\nYou can specify the step to increment or to decrement the pitch :\n\n  ex : +128 ( increment pitch of 128 )\n       -512 ( decrement pitch of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to active pitch-bend only when you push the key.\n\nRESET value correspond to the value 0."},
	{"pitch_range",AGROUP_PITCH,AEF_VALUE,"Set the range of the pitch slider (in %)"},
	{"key",AGROUP_PITCH,AEF_AUTO|AEF_DEFAULT|AEF_CHAN|AEF_VALUE,"Change the musical key of the song.\n\nValue 0 set -6 semi-tone, value 2048 leaves song unchanged, value 4096 set +6 semi-tone\n\nValues are rounded to the nearest semitone.\n\nAUTO match key of other deck."},
	{"key_smooth",AGROUP_PITCH,AEF_DEFAULT|AEF_CHAN|AEF_VALUE,"Change the musical key of the song.\n\nValue 0 set -6 semi-tone, value 2048 leaves song unchanged, value 4096 set +6 semi-tone\n\nValues not multiple of semitones are allowed."},

	{"crossfader",AGROUP_MIXER,AEF_AUTO|AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the crossfader value. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Maximum Crossfader Left)\n       2048 ( Middle )\n       4096 ( Maximum Crossfader Right )\n\nor specify the step to increment or to decrement the crossfader :\n\n  ex : +128 ( increment crossfader of 128 )\n       -512 ( decrement crossfader of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change crossfader only when you push the key.\n\nRESET value correspond to the value 2048 (Middle)."},
	{"auto_crossfade",AGROUP_MIXER,AEF_CHAN,"Smoothly bring the crossfader to one side or the other"},
	{"mix_now",AGROUP_MIXER,AEF_CHAN,"Smoothly crossfade from one side to the other, using beatsync if both songs have enough beat."},
	{"mix_now_nosync",AGROUP_MIXER,AEF_CHAN,"Smoothly crossfade from one side to the other"},
	{"mix_next",AGROUP_MIXER,0,"if the non-playing deck has a song loaded that's already been played, load a new one from the playlist.\nThen, smoothly crossfade from the playing deck to the other, using beatsync if both songs have enough beat."},
	{"mix_next_sidelist",AGROUP_MIXER,0,"if the non-playing deck has a song loaded that's already been played, load a new one from the sidelist.\nThen, smoothly crossfade from the playing deck to the other, using beatsync if both songs have enough beat."},
	{"auto_mix_next",AGROUP_MIXER,AEF_VALUE,"Start or stop automatic transitions between both decks, loading new songs from the playlist"},
	{"auto_mix_next_sidelist",AGROUP_MIXER,AEF_VALUE,"Start or stop automatic transitions between both decks, loading new songs from the sidelist"},
	{"level",AGROUP_MIXER,AEF_AUTO|AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the volume of the deck. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum  level )\n       4096 ( Maximum level)\n\nor specify the step to increment or to decrement the level :\n\n  ex : +128 ( increment level of 128 )\n       -512 ( decrement level of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change level only when you push the key.\n\nRESET value correspond to the value 4096 (Max value)."},
	{"gain",AGROUP_MIXER,AEF_AUTO|AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the gain of the deck."},

	{"bass",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the bass equalizer value."},
	{"kill_bass",AGROUP_EQUALIZERS,AEF_TEMPO|AEF_CHAN,"Remove all bass from the song."},
	{"bassfader",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Crossfade only the bass."},
	{"medium",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the medium equalizer value."},
	{"kill_medium",AGROUP_EQUALIZERS,AEF_TEMPO|AEF_CHAN,"Remove all medium from the song."},
	{"mediumfader",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Crossfade only the mediums."},
	{"high",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the high equalizer value."},
	{"kill_high",AGROUP_EQUALIZERS,AEF_TEMPO|AEF_CHAN,"Remove all high from the song."},
	{"highfader",AGROUP_EQUALIZERS,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Crossfade only the highs."},
	{"eq_reset",AGROUP_EQUALIZERS,AEF_CHAN,"Reset bass, medium and high to 0db."},

	{"menu",AGROUP_SYSTEM,AEF_VALUE,"Change to the 'value'th menu page.\n\nYou can specify a value (0 for Audio files, 1 for Samples, 2 for Effects, 3 for Record)\n\nor switch to the next menu with the value +1."},
	{"settings",AGROUP_SYSTEM,0,"Open the settings configuration pannel."},
	{"plugin_changepage",AGROUP_ONLYALL,AEF_VALUE,"Change the plugin page (1=audio, 2=video fx, 3=video trans, 4=device mapper)"},

	{"loop",AGROUP_LOOP,AEF_DEFAULT|AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set a automatic seamless loop.\nIf param=0, it will activate/deactive the loop on the default number of beat.\nIf param is relative, it will modify the default number of beat if the loop is not active, or the actual number of beat is the loop is active.\nIf param is absolute, it will activate/deactivate a loop on this number of beat (use \"50\" for half beat, \"25\" for quarter and \"125\" for eighth)."},
	{"loop_shift",AGROUP_LOOP,AEF_CHAN|AEF_VALUE,"Move the loop entry and exit points by a number of beats."},
	{"loop_move",AGROUP_LOOP,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Move the loop entry and exit points.\nIf param=auto, it will set the loop entry point."},
	{"loop_in",AGROUP_LOOP,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Set or move the loop entry point.\nIf param=auto, it will set the loop entry point."},
	{"loop_out",AGROUP_LOOP,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Set or move the loop exit point.\nIf param=auto, it will set the loop exit point, or exit the loop is there is one."},
	{"loop_length",AGROUP_LOOP,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Set or move the loop length.\nIf param=auto, it will set the loop exit point."},
	{"smart_loop",AGROUP_LOOP,AEF_CHAN|AEF_VALUE,"Activate/Deactivate the smart loop.\n(when activated, loop-out will be automatically corrected to match a perfect loop)"},
	{"loop_select",AGROUP_LOOP,AEF_CHAN,"Popup a menu to select the loop length"},
	{"loop_exit",AGROUP_LOOP,AEF_CHAN,"exit the loop"},
	{"reloop",AGROUP_LOOP,AEF_CHAN|AEF_VALUE,"Enter/exit the previous loop"},

	{"cue",AGROUP_CUES,AEF_CHAN|AEF_AUTO|AEF_VALUE,"If the song is at the cue point, pressing it play from there.\nOtherwise it will remember the current position as cue."},
	{"set_cue",AGROUP_CUES,AEF_CHAN|AEF_VALUE,"Save the actual position in the 'value'th cue point."},
	{"goto_cue",AGROUP_CUES,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Go to the 'value'th cue point."},
	{"hotcue",AGROUP_CUES,AEF_CHAN|AEF_VALUE|AEF_AUTO,"Play the cue if set, or set it otherwise."},
	{"delete_cue",AGROUP_CUES,AEF_CHAN|AEF_VALUE,"Delete a cue point."},
	{"smart_cue",AGROUP_CUES,AEF_CHAN|AEF_VALUE,"Enable/disable smart cue (hot cues play in sync)"},

	{"song_pos",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the playing position to 'value'\n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Beginning of the song )\n       4096 ( End of the song)\n\nor specify the step to increment or to decrement the playing position :\n\n  ex : +44100 ( increment playing position of 1s )\n       -4410 ( decrement playing position of 0.1s )\n       ...\n\nCheck 'temporary' checkbox if you want to change the playing position only when you push the key."},
	{"scratch",AGROUP_TURNTABLE,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Scratch the song from 'value' samples (must be relative)."},
	{"hold",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Hold the disc."},
	{"nudge",AGROUP_TURNTABLE,AEF_AUTO|AEF_CHAN|AEF_VALUE,"Nudge the song from 'value' samples (same as scratch, but without beatlock effect)."},
	{"jogwheel",AGROUP_TURNTABLE,AEF_AUTO|AEF_CHAN|AEF_VALUE,"action for controllers' jog wheels.\nIn \"vinyl mode\" (set with action \"vinyl_mode\"), the disc will hold as soon as the wheel is moved, and released when the wheel stops to move.\nIn \"jog mode\", the wheel will act like a pitch-bend.\nValue should increments of 4096 for one complete rotation."},
	{"scratch_wheel",AGROUP_TURNTABLE,AEF_AUTO|AEF_CHAN|AEF_VALUE,"action for controllers' scratch wheels (with touch platter).\nIn \"vinyl mode\" (set with action \"vinyl_mode\"), the disc will scratch if the platter is down (set with action \"scratchwheel_touch\"), and backspin is properly emulated.\nIn \"jog mode\", the wheel will act like a pitch-bend.\nValue should increments of 4096 for one complete rotation."},
	{"scratchwheel_touch",AGROUP_TURNTABLE,AEF_CHAN|AEF_VALUE,"hold the wheel if in \"vinyl mode\".\n(+1 to hold, -1 to release, 0 to switch between both)."},
	{"vinyl_mode",AGROUP_TURNTABLE,AEF_VALUE,"Set to 1 to go in vinyl mode, and -1 to go in jogwheel mode. Set to 0 to switch between both modes."},
	{"skip_beat",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Skip 'value' beats in the song."},
	{"beat_juggle",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"goes back and fourth between the same disc, shifted from 'value' beats (use \"50\" for half beat, \"25\" for quarter and \"125\" for eighth)."},
	{"set_scratchlatency",AGROUP_SYSTEM,AEF_CHAN|AEF_VALUE,"set the latency of the emulated scratch.\nMouse scratch latency should be superior to 2 times the interval between mouse messages.\nControl devices such as iCDX can set a smaller latency."},
	{"smart_scratch",AGROUP_TURNTABLE,AEF_CHAN|AEF_VALUE,"Enable/disable smart scratch (auto mute backward scratch)"},

	{"zoom",AGROUP_RHYTHM,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Zoom the rhythm window."},
	{"seek",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Quickly move into the song."},
	{"smart_seek",AGROUP_TURNTABLE,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Quickly move into the song with few audible effect."},
	{"master_tempo",AGROUP_SYSTEM,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set or unset the master tempo algorithm.\nThe Master Tempo (also called Time Stretch) lets the pitch be changed without altering the key of the song.\n\nSet the value to -1 to turn it off, 1 to turn it on and 0 to switch."},
	{"key_lock",AGROUP_SYSTEM,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set or unset the key lock (enable master tempo algorithm but keep the actual key).\n\nSet the value to -1 to turn it off, 1 to turn it on and 0 to switch."},
	{"crossfader_behavior",AGROUP_SYSTEM,AEF_VALUE,"Select the behavior of the crossfader (0 for Smooth, 1 for Full, 2 for Cut, 3 for User-defined, 4 for Scratch, 5 for disabled)."},
	{"crossfader_hamster",AGROUP_SYSTEM,AEF_VALUE,"Select the direction of the crossfader (1 for regular, -1 for inverted, 0 to switch between both)."},

	{"beat_tap",AGROUP_RHYTHM,AEF_CHAN|AEF_DEFAULT|AEF_AUTO,"Manually fix the BPM by tapping the beat.\nIf \"Smart BeatTap\" is activated, the grid tapped will automatically be snapped to the nearest likely grid.\n\nIf used with \"auto\", the Edit BPM dialog will open.\nIf used with \"default\", the song will be rescanned."},
	{"edit_bpm",AGROUP_RHYTHM,AEF_CHAN,"Open the \"fix rhythm\" window."},
	{"adjust_cbg",AGROUP_RHYTHM,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Manually adjust the CBG."},
	{"adjust_cbg4",AGROUP_RHYTHM,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Manually adjust the 4/4 pattern of the CBG."},
	{"goto_mixpoint",AGROUP_RHYTHM,AEF_CHAN|AEF_VALUE,"Go to an automix point."},
	{"set_mixpoint",AGROUP_RHYTHM,AEF_CHAN|AEF_VALUE,"Set an automix point."},

	{"edit_comment",AGROUP_BROWSER,AEF_CHAN,"Open the \"edit comment\" window."},
	{"edit_cuename",AGROUP_CUES,AEF_CHAN|AEF_VALUE,"Open the \"edit rename cue\" window."},
	{"file_info",AGROUP_BROWSER,0,"Open the \"file info\" window for the currently selected track."},

	{"pannel",AGROUP_PANNEL,AEF_TEMPO|AEF_VALUE,"Switch the pannel 'value' and all its sub-components."},
	{"show_pannel",AGROUP_PANNEL,AEF_VALUE,"Show the pannel 'value' and all its sub-components."},
	{"hide_pannel",AGROUP_PANNEL,AEF_VALUE,"Hide the pannel 'value' and all its sub-components."},
	{"multibutton",AGROUP_PANNEL,AEF_TEXT|AEF_VALUE,"click the multibutton nammed 'value'"},
	{"multibutton_select",AGROUP_PANNEL,AEF_TEXT|AEF_VALUE,"open the selection menu for multibutton nammed 'value'"},

	{"empty_buffer",AGROUP_ONLYALL,AEF_CHAN,"This action is only used by plugin developpers.\nIt tells "VirtualDJ" to recompute its sound buffers after the user changed a parameter (slider, etc...) from the custom interface.\n(this action is called automatically if you use the provided interface)"},
	{"reset_xp10",AGROUP_SYSTEM,AEF_CHAN,"Recalibrate the touch-sensitive array of the XP10.\n\nIf you move the XP10 after "VirtualDJ" was launched, the touch-sensitive device might not answer correctly (because it's very dependent on pressure etc).\nIn this case just run this recalibration. Running it won't disturbing the sound at all."},
	{"invert_icdx",AGROUP_SYSTEM,AEF_CHAN,"Invert the channels assigned to iCDX units."},
	{"",AGROUP_NOSHOW,0,""},

	{"browser_switch",AGROUP_BROWSER,AEF_VALUE,"Select the part of the browser.\n\nUse 1 for directories, 2 for the middle of the browser, 3 for playlist, 4 for sidelist"},
	{"browser_updown",AGROUP_BROWSER,AEF_VALUE,"Move in a list.\n Use -1 to go up and +1 to go down"},
	{"browser_open",AGROUP_BROWSER,AEF_CHAN|AEF_VALUE,"Load the selected song on the deck.\n\n In the directories , use -1 to close, 0 to toggle, 1 to open."},
	{"browser_back",AGROUP_BROWSER,AEF_NOTHING,"Go back to folder, or open/close folder if already in folder mode."},
	{"browser_enter",AGROUP_BROWSER,AEF_CHAN,"Load the selected song on the deck.\n\nIf in folder mode, go back in file mode."},
	{"browser_sort",AGROUP_BROWSER,AEF_VALUE,"Sort along the N-th column"},
	{"browser_gotofolder",AGROUP_BROWSER,0,"Go to the folder of the currently selected song"},
	{"browser_tosidelist",AGROUP_BROWSER,0,"Add the selected song to the sidelist"},
	{"browser_tovfolder",AGROUP_BROWSER,AEF_VALUE|AEF_TEXT,"Add the selected song to the named virtual folder (or the last one in the list if no name is given)"},
	{"load_fromsidelist",AGROUP_BROWSER,AEF_CHAN,"Load the first song from the sidelist"},
	{"load_filepath",AGROUP_BROWSER,AEF_CHAN|AEF_VALUE|AEF_TEXT,"load a file from its filepath to one deck."},

	{"lock_pannel",AGROUP_BROWSER,AEF_TEMPO|AEF_VALUE,"Lock or unlock a sidepannel in the browser (directories or playlist)."},

	{"add_favoritefolder",AGROUP_BROWSER,0,"Set the current folder as favorite folder."},
	{"add_filterfolder",AGROUP_BROWSER,0,"Create a new filter folder"},
	{"add_virtualfolder",AGROUP_BROWSER,0,"Create a new virtual folder"},

	{"automix",AGROUP_PLAYLIST,AEF_CHAN|AEF_VALUE,"Start or stop the automatic playlist mixing."},
	{"automix_skip",AGROUP_PLAYLIST,0,"If Automix is active, skip the actual song and mix to the next one in the playlist."},
	{"randomize",AGROUP_PLAYLIST,0,"Randomize the playlist."},
	{"onlynew",AGROUP_PLAYLIST,0,"Remove all already-played songs from the playlist."},
	{"noduplicates",AGROUP_PLAYLIST,0,"Remove all duplicates from the playlist."},
	{"repeat_playlist",AGROUP_PLAYLIST,AEF_VALUE,"Enable or Disable the repeat mode of the playlist."},
	{"free_playlist",AGROUP_PLAYLIST,0,"Empty the playlist."},
	{"save_playlist",AGROUP_PLAYLIST,0,"Save a playlist"},
	{"browser_toplaylist",AGROUP_PLAYLIST,0,"Add the selected song to the playlist"},
	{"load_fromplaylist",AGROUP_PLAYLIST,AEF_CHAN,"Load the first song from the playlist"},
	{"playlist_options",AGROUP_PLAYLIST,0,"Display the playlist management menu"},
	{"vfolder_fromplaylist",AGROUP_PLAYLIST,0,"Create a new virtual folder from the playlist"},
	{"switch_sidelist_playlist",AGROUP_PLAYLIST,0,"Put the content of the sidelist in the playlist, and the content of the playlist in the sidelist"},
	{"free_sidelist",AGROUP_PLAYLIST,0,"Empty the sidelist"},

	{"search",AGROUP_BROWSER,AEF_DEFAULT,"set the keyboard focus to the search box"},
	{"search_options",AGROUP_BROWSER,AEF_VALUE,"popup the search menu. (or set a hex value if value!=0)."},
	{"log_search",AGROUP_BROWSER,0,"log the current search in the SearchLog.txt file.\nUse this to log requests you couldn't find, in order to download them after the party."},
	{"goto_last_folder",AGROUP_BROWSER,0,"go back to the last visited folder"},
	{"goto_folder",AGROUP_BROWSER,AEF_VALUE,"go to the n-th favorite folder"},
	{"recurse_folder",AGROUP_BROWSER,0,"recurse the actual folder"},
	{"view_options",AGROUP_BROWSER,AEF_VALUE,"popup the view menu. (or set a hex value if value!=0)."},

	{"record",AGROUP_RECORD,AEF_TEMPO,"Start/Stop the recording or broadcasting"},
	{"record_cut",AGROUP_RECORD,0,"Signal a file change"},
	{"record_config",AGROUP_RECORD,0,"Open the config window for the recording"},

	{"effect_select",AGROUP_EFFECTS,AEF_CHAN|AEF_VALUE|AEF_TEXT,"Change the plugin loaded into the current effect.\n\nIf no value, popup a list of available plugins.\nOtherwise, select the value'th plugin.\n(value can be +1 or -1).\nYou can also name a plugin by name."},
	{"effect_select_multi",AGROUP_EFFECTS,AEF_CHAN|AEF_VALUE|AEF_TEXT,"Change the plugin loaded into the current effect without reseting active effects.\n\nIf no value, popup a list of available plugins.\nOtherwise, select the value'th plugin.\n(value can be +1 or -1).\nYou can also name a plugin by name."},
	{"effect_activate",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE|AEF_DEFAULT|AEF_TEXT,"Activate or deactivate the current effect.\n(use value \"Reset\" to deactivate all active effects at once)\n(use plugin's name to activate a specific plugin not yet loaded)"},
	{"effect_slider_1",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the first slider value of the current effect."},
	{"effect_slider_2",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the second slider value of the current effect."},
	{"effect_slider_3",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the third slider value of the current effect."},
	{"effect_slider_4",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the fourth slider value of the current effect."},
	{"effect_slider_5",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Set the fifth slider value of the current effect."},
	{"effect_button",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Push the value'th button of the current effect"},
	{"effect_slot_select",AGROUP_EFFECTS,AEF_CHAN|AEF_VALUE,"Change the plugin loaded into the value'th effect slot (popup a list of available plugins to be selected by mouse)."},
	{"effect_slot_unscroll",AGROUP_EFFECTS,AEF_CHAN|AEF_VALUE,"Change the plugin loaded into the value'th effect slot (scroll backward through all plugins)."},
	{"effect_slot_scroll",AGROUP_EFFECTS,AEF_CHAN|AEF_VALUE,"Change the plugin loaded into the value'th effect slot (scroll through all plugins)."},
	{"effect_slot_activate",AGROUP_EFFECTS,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Activate or deactivate the value'th effect slot."},

	{"sample_play",AGROUP_SAMPLES,AEF_TEMPO|AEF_VALUE,"Play the 'value'th sample (between 1 and 12), or the active sample if value=0."},
	{"sample_rec_loop",AGROUP_SAMPLES,AEF_CHAN|AEF_VALUE,"Record a loop from a deck into a sample slot.\nIf the deck is actually looped, this loop will be used. Otherwise, a default 4 beat loop starting from the actual position will be recorded.\n\nThe level and equalizers parameters are taken into account."},
	{"sample_rec_jingle",AGROUP_SAMPLES,AEF_TEMPO|AEF_CHAN|AEF_VALUE,"Record a jingle from a deck into a sample slot.\nThe first action will define the jingle start point, and the second will define the end point and actually get the jingle.\n\nThe level and equalizers values at the time of the second action are applied to the whole sample."},
	{"sample_options",AGROUP_SAMPLES,AEF_VALUE,"Display the sample menu of a sample slot.\nThis menu allows the user to load and save the sample, as well as setting the loop, beatlock and autoplay modes.\n\nThe menu will appear as a Windows context menu at the mouse position."},
	{"load_sample",AGROUP_SAMPLES,AEF_VALUE,"Open the \"Load a Sample\" window."},
	{"save_sample",AGROUP_SAMPLES,AEF_VALUE,"Open the \"Save a Sample\" window."},
	{"sample_stop_all",AGROUP_SAMPLES,0,"Stop all samples"},
	{"sample_select",AGROUP_SAMPLES,AEF_CHAN|AEF_VALUE,"Select the slot for deck's main sample"},
	{"sample_volume",AGROUP_SAMPLES,AEF_CHAN|AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume for the main sample."},
	{"sample_volume_1",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 1. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_2",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 2. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_3",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 3. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_4",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 4. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_5",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 5. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_6",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 6. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_7",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 7. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_8",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 8. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_9",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 9. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_10",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 10. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_11",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 11. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},
	{"sample_volume_12",AGROUP_SAMPLES,AEF_DEFAULT|AEF_TEMPO|AEF_VALUE,"Set the volume of the sample 12. \n\nYou can specify a value (between 0 and 4096)\n\n  ex : 0    ( Minimum volume)\n       4096 ( Maximum volume )\n\nor specify the step to increment or to decrement the volume :\n\n  ex : +128 ( increment the volume of 128 )\n       -512 ( decrement the volume of 512 )\n       ...\n\nCheck 'temporary' checkbox if you want to change the volume only when you push the key."},

	{"timecode_active",AGROUP_TURNTABLE,AEF_CHAN|AEF_VALUE,"Active or Unactive the action of the timecoded vinyl"},
	{"timecode_bypass",AGROUP_TURNTABLE,AEF_CHAN|AEF_VALUE,"Bypass the timecoded input and play the vinyl directly through the soundoutput.\nAll gain, RIAA and stereo correction are still applied.\nThis mode only works if both the input and the output are on the same ASIO card."},
	{"timecode_mode",AGROUP_TURNTABLE,AEF_CHAN|AEF_VALUE,"0 for absolute, 1 for smart, 2 for relative"},

	{"setusercrossfade",AGROUP_ONLYALL,AEF_VALUE,"[PLUGIN USE ONLY]\nSet the user-defined crossfader curve (pass a 4097 integer tab pointer as parameter)\n Set a tab for each deck:\n on deck 1 with the values of level 1\non deck 2 with the values of level 2"},
	{"loadsamplefile",AGROUP_ONLYALL,AEF_CHAN|AEF_VALUE,"[PLUGIN USE ONLY]\nLoad a file in a sample slot (pass a char* pointer as parameter)"},
	{"saveregistryconfig",AGROUP_ONLYALL,0,"Update Windows' registry with "VirtualDJ"'s config"},
	{"shortcut",AGROUP_ONLYALL,AEF_VALUE,"[PLUGIN USE ONLY]\nExecute a command or group of commands associated with a shortcut (value=shortcut keycode)"},
	{"effect_redraw",AGROUP_ONLYALL,0,"[PLUGIN USE ONLY]\nRedraw the plugin window"},
	{"videosound_start",AGROUP_ONLYALL,0,"[PLUGIN USE ONLY]\nStart recording the sound for GetInfo(\"VideoSound\",buff) in plugins"},
	{"videosound_stop",AGROUP_ONLYALL,0,"[PLUGIN USE ONLY]\nStop recording the sound for plugins"},
	{"crash",AGROUP_ONLYALL,0,"Well, just don't try this while playing live... :D"},

	{"video_open",AGROUP_VIDEO,AEF_VALUE,"Open (or close if value=-1) the video window"},
	{"video_crossfade",AGROUP_VIDEO,AEF_VALUE|AEF_DEFAULT|AEF_TEMPO|AEF_AUTO,"Move the video crossfader (set to auto to link or unlink it to the main crossfader)"},
	{"video_link",AGROUP_VIDEO,AEF_CHAN,"Link the video selected in the browser to be used as video track for the audio song on the specified deck"},
	{"video_unlink",AGROUP_VIDEO,AEF_CHAN,"If the current song is linked with a video, remove the link"},
	{"video_fadetoblack",AGROUP_VIDEO,AEF_VALUE,"Set or unset the fade-to-black on volume sliders behaviour"},
	{"video_select_trans",AGROUP_VIDEO,AEF_VALUE|AEF_TEXT,"Change the transition plugin"},
	{"video_trans",AGROUP_VIDEO,AEF_VALUE|AEF_CHAN|AEF_DEFAULT|AEF_TEXT,"Activate the transition"},
	{"video_trans_param",AGROUP_VIDEO,AEF_VALUE,"Change the slider value of the video transition"},
	{"video_trans_param_2",AGROUP_VIDEO,AEF_VALUE,"Change the second slider value of the video transition"},
	{"video_trans_param_3",AGROUP_VIDEO,AEF_VALUE,"Change the third slider value of the video transition"},
	{"video_trans_param_4",AGROUP_VIDEO,AEF_VALUE,"Change the fourth slider value of the video transition"},
	{"video_trans_param_5",AGROUP_VIDEO,AEF_VALUE,"Change the fifth slider value of the video transition"},
	{"video_trans_button",AGROUP_VIDEO,AEF_VALUE,"Push the value'th button on the current video transition"},
	{"video_select_fx",AGROUP_VIDEO,AEF_VALUE|AEF_TEXT,"Select the video effect from all available DLLs (set to 0 to pop up a small window with the list of available effects, or +1/-1 to silently change). You can also name a plugin by name."},
	{"video_select_fx_multi",AGROUP_VIDEO,AEF_VALUE|AEF_TEXT,"Select the video effect from all available DLLs without reseting the active effects (set to 0 to pop up a small window with the list of available effects, or +1/-1 to silently change). You can also name a plugin by name."},
	{"video_fx",AGROUP_VIDEO,AEF_VALUE|AEF_TEMPO|AEF_DEFAULT|AEF_TEXT,"Activate/Deactivate the video effect"},
	{"video_fx_param",AGROUP_VIDEO,AEF_VALUE,"Change the first slider value of the video effect"},
	{"video_fx_param_2",AGROUP_VIDEO,AEF_VALUE,"Change the second slider value of the video effect"},
	{"video_fx_param_3",AGROUP_VIDEO,AEF_VALUE,"Change the third slider value of the video effect"},
	{"video_fx_param_4",AGROUP_VIDEO,AEF_VALUE,"Change the fourth slider value of the video effect"},
	{"video_fx_param_5",AGROUP_VIDEO,AEF_VALUE,"Change the fifth slider value of the video effect"},
	{"video_fx_button",AGROUP_VIDEO,AEF_VALUE,"Push the value'th button on the current video effect"},

	{"dmx",AGROUP_DMX,AEF_VALUE,"Show/Hide the lights control window"},
	{"dmx_color",AGROUP_DMX,AEF_VALUE,"Set the color program"},
	{"dmx_chase",AGROUP_DMX,AEF_VALUE,"Set the chase program"},
	{"dmx_black",AGROUP_DMX,AEF_VALUE,"Black all lights"},
	{"dmx_strobe",AGROUP_DMX,AEF_VALUE,"Activate/Deactivate the strobe"},
	{"dmx_flash",AGROUP_DMX,AEF_VALUE,"Flash all lights"},
	{"dmx_setvalue",AGROUP_DMX,AEF_VALUE,"Set an individual dmx value (param=channel*256+value)"},

	{"unload",AGROUP_DECKCONTROLS,AEF_CHAN,"Unload a deck"},
	{"clone_deck",AGROUP_TURNTABLE,AEF_CHAN,"Clone a deck (load the same song on the other deck, and play it from the same position, ready for beat-juggling)"},
	{"clone_deck_nopitch",AGROUP_TURNTABLE,AEF_CHAN,"Clone a deck (load the same song on the other deck, and play it from the same position, ready for beat-juggling), but do not match the pitch"},
